Skip to content

*: harden partial signature exchange#4599

Open
pinebit wants to merge 1 commit into
mainfrom
pinebit/harden-parsigex-sender-binding
Open

*: harden partial signature exchange#4599
pinebit wants to merge 1 commit into
mainfrom
pinebit/harden-parsigex-sender-binding

Conversation

@pinebit

@pinebit pinebit commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Bind partial signatures received during the DKG lock-hash exchange to their authenticated sender: a peer may only contribute partial signatures under its own assigned share index.

  • parsigex.handle passes the authenticated sender to the verify function. The core workflow verifier (NewEth2Verifier) ignores it, since those partial signatures are already verified cryptographically against the pubshare for the claimed share index, so charon run behaviour is unchanged.
  • The DKG exchanger keys the binding on each peer's assigned share index via a peer map, so it stays correct when share indices are not contiguous with peer positions (for example after operators are removed and the remaining ones keep their original share indices). Removed-but-participating operators are excluded from the verification map.
  • newExchanger validates its peer index and peer map up front and returns an error on a misconfigured map instead of silently timing out.

category: bug
ticket: none

Bind partial signatures received during the DKG lock-hash exchange to
their authenticated sender: a peer may only contribute partial
signatures under its own assigned share index. parsigex.handle now
passes the authenticated sender to the verify function; the core
workflow verifier ignores it, since those partial signatures are
already verified cryptographically against the pubshare for the claimed
share index.

The DKG exchanger keys the binding on each peer's assigned share index
via a peer map, so it stays correct when share indices are not
contiguous with peer positions, such as after operators are removed.
newExchanger validates its peer index and peer map up front and returns
an error on a misconfigured map instead of silently timing out.

category: bug
ticket: none
feature_flag: none

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@pinebit pinebit changed the title core/parsigex,dkg: harden partial signature exchange *: harden partial signature exchange Jul 17, 2026
@sonarqubecloud

Copy link
Copy Markdown

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 73.46939% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.58%. Comparing base (2eb6798) to head (3f21d50).

Files with missing lines Patch % Lines
dkg/dkg.go 77.77% 1 Missing and 1 partial ⚠️
dkg/exchanger.go 88.88% 1 Missing and 1 partial ⚠️
dkg/protocol_addoperators.go 50.00% 1 Missing and 1 partial ⚠️
dkg/protocol_removeoperators.go 66.66% 1 Missing and 1 partial ⚠️
dkg/protocol_replaceoperator.go 50.00% 1 Missing and 1 partial ⚠️
dkg/protocol_reshare.go 50.00% 1 Missing and 1 partial ⚠️
core/parsigex/parsigex.go 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4599   +/-   ##
=======================================
  Coverage   57.58%   57.58%           
=======================================
  Files         246      246           
  Lines       33675    33704   +29     
=======================================
+ Hits        19392    19410   +18     
- Misses      11845    11849    +4     
- Partials     2438     2445    +7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant